package com.lxl.workbench.dao;


import com.lxl.workbench.entity.Book;
import javax.servlet.jsp.jstl.sql.Result;
import java.sql.SQLException;


/**
 * @author 北上寻海
 */
public interface BookDao {

    /**
     *
     * 根据传过来的条件查询，可能是一个或多个，也可能没有
     * @param bookName 书名
     * @param bookType 所属类型
     * @param bookAuthor 书的作者
     * @return 用于转化ResultSet的Result
     * @throws SQLException 数据库异常
     */
    Result selectBookByCondition(String bookName, String bookType, String bookAuthor) throws SQLException;

    /**
     * 先把所有的剩余件数查出来先，然后计算，在更新
     * @param ids id数组
     * @return books
     * @throws SQLException 数据库异常
     */
     Result selectBookByIds(String [] ids) throws SQLException;

    /**
     * 借出书籍
     * @param ids id数组
     * @param remainingArray 待更新的remaining
     * @return 影响条数
     * @throws SQLException 数据库异常
     */
    int updateBookByIds(String [] ids,int [] remainingArray) throws SQLException;

    /**
     * 插入书籍
     * @param book 书籍对象
     * @return int
     * @throws SQLException 数据库异常
     */
    int insertBook(Book book) throws SQLException;

    /**
     * 更新书籍
     * @param book 封装要更新信息的书籍对象
     * @return int
     * @throws SQLException 数据库异常
     */
    int updateBookByCondition(Book book) throws SQLException;

    /**
     * 书目管理员删除书，根据选中的ids去删
     * @param delIds 选中的id数组
     * @return 影响条数
     * @throws SQLException SQL异常
     */
    int deleteBookByIds(String [] delIds) throws SQLException;




}
